package day240110

import "fmt"

func Switch范围和穿透() {
	score := 73
	//原始使用方法

	//如果条件为 值时
	switch score {
	case 73:

		fmt.Println("73")
	case 70, 71, 72: //可以多取值
		fmt.Println("不是73")
	default:
		fmt.Println("--")
	}

	//如果条件为 范围时, switch 后面直接空掉
	switch {
	case score > 90:
		fmt.Println(">90") //不执行
	case score > 60:
		fmt.Println(">60") //执行  执行到这结束，后面不执行
	case score > 70:
		fmt.Println(">70") //不执行
	default:
		fmt.Println("1-default") //不执行（default 是上方case都不符合条件，执行default）
	}

	fmt.Println("穿透:")
	//fallthrough 穿透的使用
	//下方顺序，先case找8,1-4没有，执行default,有fallthrough，穿透下方一层case
	//然后case 1: 里也有fallthrough，继续穿透
	switch num := 8; num {
	default:
		fmt.Println("2-default") //先case找8,1-4没有
		//break  可以直接中断跳出switch,穿透在下方，break不会穿透
		fallthrough
	case 1:
		fmt.Println(1) //default执行， fallthrough 穿透执行
		fallthrough
	case 2:
		fmt.Println(2) //1 fallthrough 穿透执行
	case 3:
		fmt.Println(3)
	case 4:
		fmt.Println(4)

	}

	//最终输出：2-default 1 2

}
